home *** CD-ROM | disk | FTP | other *** search
-
- ----------------------------
- Version history
- ---------------
-
-
- YAEC 19a
- --------
-
- 1.9:
-
- 6:th public release (Bugfix release)
-
- Well, last version had been pretty rearranged internally, it shows :)
-
-
- *** front-end ***
-
- - Fix : RAISE keyword had no effect.
-
- - Fix : oop was messed up.
-
- - Fix : conditional compilation did not work.
-
- - Fix : indexing buggy ...gaah..
-
- *** back-end ***
-
- - Fix : nilcheck/ptrcheck was messed up.
-
- *** linklib ***
-
- - Fix : stringformatting - now formats hexa correctly AND is
- even faster then before ! :)
-
- - Fix : StrAdd() with len did not set strlen correctly.
-
- - now libraries have exec,dos,intuition and graphics
- libraries opened automatically. (just as exes).
-
- - It is now possible to use WriteF(),PrintF(),PutFmt()
- from libraries!
-
- - Added new formatcode : \f -- for floats !
- see example.
-
- *** source ***
-
- - Added debuglib.e and ddebuglib.e, modules with inline macros.
- You need the appropriate linklibs from Amiga® to use them.
-
- *** front-end ***
-
- - Implemented compiler-arg DEF/K.
- Define a globally visible symbol to be used with
- conditional compilation. ex : DEF DEBUG.
- (The global symbol YAEC is always defined)
-
-
- 1.8a: (July 15 2001)
-
- Fifth public release.
-
- *** front-end ***
-
- - Bugfixed : relative module path (*).
-
- - macros (#define) implemented.
- Bonus : 0-arg macros "()", "EXPORT #define" and "#undef" keyword.
- experimental : "IMPORT #define <label>"
- -> grab a #define from main-source into module.
-
- - conditional compilation (#ifdef,#ifndef,#endif) moved back in.
- bit of a fast hack but works for simpler stuff.
-
- - MACRO keyword -- expression substitution.
- The better way to do it. supports varargs! see docs for more info.
-
- *** back-end/linklib ***
-
- - dynamic strings/lists may have more than 32k elements.
- (theoretically 2 gig!) using 32bit currlen,maxlen
- (which is faster in 32bit memory)
-
- *** front-end ***
-
- - Constant "VARARGS" contains the latest number of variable
- arguments in MACRO.
- guess what this example does:
- MACRO FmtPrint(fmt,...) IS Stores(...) BUT (A0 := fmt) BUT \
- (A1 := A7) BUT ASM " bsr PrintFmt" BUT \
- Rems(VARARGS*4)
- bug : does not nest properly. (needs a stack..)
-
- - automatic "#define YAEC". useful with conditional compilation.
-
- - multiline RAISE statement. (finally)
-
- - "EXPORT MODULE ..." well..guess what it does.. (alpha)
-
- - CONSTants now include static strings,lists,arrays,objects!
- ex : CONST MYVAL=10, MYSTRING='blabla',
- MYLIST=[1,2,-0.6, {func}, BLABLA],
- MYARRAY=[4,5,6,7]:INT (beta)
-
- - Heheh... "MACRO" changed name again to "#macro".
-
- - Conditional compilation : #else keyword. (alpha)
-
- - Possible bugfix : Conditional compilation _may_ work 100% now :)
-
- - "<<" and ">>" accepted in constant expressions.
- ex : CONST BLA_F = 1 << BLA_B
-
- *** misc ***
-
- - wrote/added amigalib.e
-
-
-
- 1.7a: (June 15 2001)
-
- *** misc ***
-
- - some more sources in examples/ drawer.
-
- *** linklib ***
-
- - Bugfixed FastDispose(), some errors where introduced in prev version.
-
- - Bugfixed MidStr(), now copies 0 bytes if len=0.
-
- - Bugfixed SetStr(), didnt set nil-byte.
-
- - Bugfixed StrCopy(),MidStr(): now sets estring-len to 0 if copy-len is 0.
-
-
- 1.6a: (April 17 2001)
-
- *** Front-end ***
-
- - Speeded up module-parsing a little bit.
-
- - LONG/INT/CHAR didnt continiue on several lines. Fixed!
-
- - Well, one of the very last incompabilities just went away..
- MODULE 'alibrary' is now allowed ! :)
-
- - Disabled unification and lisp-cells as they are not really
- stable and bugfree. Positive : compiler got faster! :)
-
- - Disabled #define, #ifdef, #ifndef, #endif.
- (#define still gets parsed, but skipped)
- Yaec does not have a real pre-processor at the moment,
- but its planned. For now, a new keyword MACRO can
- be used instead of #define in many cases.
- ex : MACRO BLABLANAME IS 'blabla.library'
- MACRO Max(x,y) IS IF x > y THEN x ELSE y
-
- MACROs may be EXPORTed. (EXPORT MACRO ...)
- For more examples, look at the system-modules.
-
- - Changed syntax of single-line asm (ASM).
- Before : ASM <instruction>
- Now : ASM '<whatever>' -> Note the apostrofes !
- Some advantages : 1. e-style comments can be appended.
- 2. Multiple ASM via BUT.
-
- - Completely got rid of EXTERN keyword and .ext files!
- The E language itself is now capable of doing all that
- and more. External defenitions are now in standard
- ascii module-format.
-
- - EXIT keyword implemented. (works with _all_ loop constructs)
-
- - relative module path (*) now works exactly as with EC.
-
- - multiple return values (3) implemented.
-
- - "EXPORT DEF ..." in modules is now allowed for compability.
- Preferred way is to type "IMPORT DEF ...".
-
- - Constant folding implemented.
-
- - Experimental error-recovery.
-
- *** Linklib ***
-
- - o FastNew(),FastDispose() now uses very fast recycling pool!
- (thanks to Wouter for helping here!)
- o Fix: FastNew() now raises "MEM" if out of memory.
- o Some NEW/END bugs removed.
- o Optimised NEW:s exceptiongenerating. (saved some instructions)
-
- - Startupcode would fail on > v40, when it should fail on < v40. Fixed.
-
- - Fix : Exes now returns exception as return-code. (if throwed out)
-
- - exe/lib/dev v39 support. not tested but hey!.. send me a line if it works.
-
- *** back-end ***
-
- - produces much better code now.
-
- *** Misc ***
-
- - bin/fdtool replaced with bin/fd2module.
-
-
- 1.5a: (April 10 2001)
-
- Fourth public release.
-
- - ReadStr() didnt set stringlen correctly. does now.
-
- - Nested comments didnt work. Should now.
-
- - Amiga.lib working again :)
-
- - Added two .ext files : debuglib.ext and ddebuglib.ext
- for using debug.lib and ddebug.lib from Amiga® Dev CD.
-
- - Added bin/fdtool - convert Your .fd:s to .ext:s with this.
-
- - All the v40 standard Amiga librarybases are predefined now!
-
- - Stringformatting : added \z support. (zero-fill)
-
- - Globals now accept constants and simple constant expressions
- as defaultvalue. ex : DEF myglobal=ACONSTANT*4-7
-
- - FPU is now only required if floating point is used.
- (previous version required fpu anyway)
-
- - Added compiler args : WB/S,OPTI/S,HOLD/S,LARGE/S,SF=SHOWFILENAME/S.
- OPTI and LARGE does nothing for now, but may in future.
-
- - Default arguments to procedures works now.
-
- - PUBLIC/PRIVATE in OBJECT declaration works now.
-
- - Parameters to procedures where swapped. Fixed.
-
- - Librarymode now automatically creates .fd file.
- (use bin/fdtool to convert it to .ext)
-
- - Linkobject mode automatically creates .ext file.
- (still a bit experimental and under construction)
-
- - Fixed "IS" in "PROC name([params]) [OF name] IS <exp>".
- <exp> must be on the same line as "IS".
-
- - "OPT LINKOBJ" turned into "LINKOBJECT".
- (must be first thing in source (like LIBRARY)).
-
- - "*" preceeding module/extern-name now inserts path to
- the main-source. This is not perfect, but atleast makes
- things a little better.
-
- - Ptr-math is _allowed_ for now. (as in ec3.3a) Maybe it stays.
- Probably it will return, but a bit smarter; for example things
- like this should be spotted as errors, always :
- "array + array" or "ptr * 10" etc..
-
- - Added some missing internal functions : Mouse(), LeftMouse(),
- WaitLeftMouse(), RealF(), Rnd(), RndQ(), RealVal().
-
- - Multi-line DEF (DEF statement can continiue on several lines).
-
- - Modules can now be check-compiled.
-
- - OPT STACK implemented : OPT STACK=<sizevalue>
- -> manually set stacksize, overrides YAEC:s estimation.
-
- - Added keywords : JUMP and LAB.
- -> JUMP <labelname> : Jump to a local label.
- -> LAB <labelname> : Define a local label.
-
- - Global labels (label:)
-
- - Global storage definition (LONG 1,2,3,.. / INT / CHAR)
-
- - Global Asm (ASM.. / ENDASM)
-
-
- 1.4a: (Feb 22 2001)
-
- Third public release.
-
- - Rewrote the hole type-system. Its real good now,
- and ready for the future.
-
- - NEW/END/++/-- fully implemented.
-
- - Added AFD-Copyright Notice.
-
- - YAEC is now SHAREWARE.
-
- - Fixed NILCHECK and added PTRCHECK cli-args.
-
- - Compiling LINKOBJ now automatically creates .ext file.
- (this means its usable now :))
-
- - LIBRARY/DEVICE mode ! (see examples)
- (device mode not tested)
-
- - Fixed a nasty bug in externs that could cause crashes
- in some executables.
-
- - Fixed arguments to procedures so they are evaluated
- in the same way they are on ec3.3a, that is from
- left to right! some programs should work beter now! :)
-
- - Fixed SELECT statement so it accepts "x OF y".
-
- - Amigalib support gone again.. :(
-
-
- 1.3b: (Jan 21 2001)
-
- - Added Amigaguide® documentation.
-
- - SetStdRast() was missing.
-
- - Enabled 68881/2 fpu-asm (Martin Kuchinka)
-
- - Added Amigalib support. -> amigalib.ext
-
- - Improved NEW, objectptr[] still missing.
-
- - Added END keyword.
-
-
- 1.2b: (Jan 1 2001)
-
- Second public release
-
- - Fixed some archiveing errors.
-
- - Methods returned crap.
-
-
- 1.1.1 Beta: (Dec 2000)
-
- First public release
-
-